package com.example.type;

/**
 * 目标：掌握强制类型转换
 */
public class TypeConversionDemo3 {
    public static void main(String[] args) {
        // 什么时候会用到强制类型转换：把大范围的变量赋值给小范围的变量此时就需要强制类型转换
        // 这个int占4个字节 但是byte占1个字节 此时直接赋值会发生报错 这个时候就需要强制类型转换
        int a = 20;
        byte b = (byte) a;  // ALT + ENTER 强制类型转换
        System.out.println(a);
        System.out.println(b);

        // 注意：强制类型可能会丢失精度
        // 此时int占4个字节 但是byte占1个字节 因为byte只能存-128~127 而此时int存了1500，远远超过了byte的范围，此时会丢失精度
        int i = 1500;
        byte j = (byte) i;
        System.out.println(j); // -36

        double d = 99.5;
        int m = (int) d; // 强制类型转换
        System.out.println(m); // 丢掉小数部分，保留整数部分
    }
}
